Systems and Methods for the Distributed Categorization of Source Data

ABSTRACT

Systems and methods for the crowdsourced clustering of data items in accordance embodiments of the invention are disclosed. In one embodiment of the invention, a method for determining categories for a set of source data includes obtaining a set of source data, determining a plurality of subsets of the source data, where a subset of the source data includes a plurality of pieces of source data in the set of source data, generating a set of pairwise annotations for the pieces of source data in each subset of source data, clustering the set of source data into related subsets of source data based on the sets of pairwise labels for each subset of source data, and identifying a category for each related subset of source data based on the clusterings of source data and the source data metadata for the pieces of source data in the group of source data.

CROSS-REFERENCE TO RELATED APPLICATIONS

The current application claims priority to U.S. Provisional PatentApplication No. 61/648,965, titled “Crowdclustering” to Gomes et al. andfiled May 18, 2012 and U.S. Provisional Patent Application No.61/663,138, titled “Method for Combining Human and Machine Computationfor Classification and Regression Tasks” to Welinder et al. and filedJun. 22, 2012. The disclosures of U.S. Provisional Patent ApplicationNos. 61/648,965 and 61/663,138 are hereby incorporated by reference intheir entirety.

FEDERAL FUNDING SUPPORT

This invention was made with government support under N00014-06-1-0734,N00014-10-1-0933 (UCLA.MURI Sub 1015 G NA127), and N00173-09-C-4005awarded by the Office of Naval Research along with government supportunder IIS0413312 awarded by the National Science Foundation. Thegovernment has certain rights in the invention.

FIELD OF THE INVENTION

The present invention is generally related to data c and morespecifically the distributed categorization of sets of data.

BACKGROUND OF THE INVENTION

Amazon Mechanical Turk is a service provided by Amazon.com of Seattle,Wash. Amazon Mechanical Turk provides the ability to submit tasks andhave a human complete the task in exchange for a monetary reward forcompleting the task.

SUMMARY OF THE INVENTION

Systems and methods for the crowdsourced clustering of data items inaccordance embodiments of the invention are disclosed. In one embodimentof the invention, a method for determining categories for a set ofsource data includes obtaining a set of source data using a distributeddata categorization server system, where a piece of source data includessource data metadata describing attributes of the piece of source data,determining a plurality of subsets of the source data using thedistributed data categorization server system, where a subset of thesource data includes a plurality of pieces of source data in the set ofsource data, generating a set of pairwise annotations for the pieces ofsource data in each subset of source data using the distributed datacategorization server system, where a pairwise annotation indicates whena first piece of source data in a pair of pieces of source data in thesubset of source data is similar to a second piece of source data in thepair of pieces of source data, clustering the set of source data intorelated subsets of source data based on the sets of pairwise labels foreach subset of source data using the distributed data categorizationserver system, and identifying a category for each related subset ofsource data based on the clusterings of source data and the source datametadata for the pieces of source data in the group of source data usingthe distributed data categorization server system.

In another embodiment of the invention, determining categories for a setof source data further includes generating a taxonomy based on theidentified categories and the set of source data using the distributeddata categorization server system, where the taxonomy includesrelationships between the identified categories and the pieces of sourcedata in the set of source data.

In an additional embodiment of the invention, a category in the taxonomyincludes one or more attributes of the pieces of source data associatedwith the category in the taxonomy.

In yet another additional embodiment of the invention, determiningcategories for a set of source data further includes iterativelyidentifying sub-categories for at least one identified category based onthe pieces of source data associated with the identified category usingthe distributed data categorization server system.

In still another additional embodiment of the invention, the at leastone identified category is selected based on the attributes of thepieces of source data associated with the identified category and theidentified sub-categories include at least one attribute from a piece ofsource data associated with the sub-category that is not present in theidentified category.

In yet still another additional embodiment of the invention, determiningcategories for a set of source data further includes generatinginstruction data using the distributed data categorization serversystem, where the instruction data describes the attributes of thepieces of the source data that should be used in generating the set ofpairwise annotations.

In yet another embodiment of the invention, the instruction data isgenerated based on the attributes of the pieces of source data in theset of source data.

In still another embodiment of the invention, generating a set ofpairwise annotations for the pieces of source data in each subset ofsource data using the distributed data categorization server system isbased on data characterization device metadata, where the datacharacterization device metadata describes anticipated annotations basedon the pieces of source data.

In yet still another embodiment of the invention, clustering the set ofsource data into related subsets of source data further includesgenerating a model including a set of points representing the pieces ofsource data in a Euclidian space using the distributed datacategorization server system and clustering the set of points within theEuclidian space based on the set of pairwise annotations using thedistributed data categorization server system.

In yet another additional embodiment of the invention, determiningcategories for a set of source data further includes estimating thenumber of clusters within the Euclidian space using the distributed datacategorization server system.

In still another additional embodiment of the invention, determining aplurality of subsets further includes determining a subset size usingthe distributed data categorization server system, where the subset sizeis a measure of the number of pieces of source data assigned to a subsetand deterministically allocating the pieces of source data to thedetermined subsets using the distributed data categorization serversystem.

In yet still another additional embodiment of the invention, determiningcategories for a set of source data further includes allocatingadditional pieces of source data to the subsets using the distributeddata categorization server system, where the additional pieces of sourcedata are sampled without replacement from the set of source data notalready assigned to the subset.

Still another embodiment of the invention includes a distributed datacategorization server system including a processor and a memoryconfigured to store a data categorization application, wherein the datacategorization application configures the processor to obtain a set ofsource data, where a piece of source data includes source data metadatadescribing attributes of the piece of source data, determine a pluralityof subsets of the source data, where a subset of the source dataincludes a plurality of pieces of source data in the set of source data,generate a set of pairwise annotations for the pieces of source data ineach subset of source data, where a pairwise annotation indicates when afirst piece of source data in a pair of pieces of source data in thesubset of source data is similar to a second piece of source data in thepair of pieces of source data, cluster the set of source data intorelated subsets of source data based on the sets of pairwise labels foreach subset of source data, and identify a category for each relatedsubset of source data based on the clusterings of source data and thesource data metadata for the pieces of source data in the group ofsource data.

In yet another additional embodiment of the invention, the datacategorization application further configures the processor to generatea taxonomy based on the identified categories and the set of sourcedata, where the taxonomy includes relationships between the identifiedcategories and the pieces of source data in the set of source data.

In still another additional embodiment of the invention, a category inthe taxonomy includes one or more attributes of the pieces of sourcedata associated with the category in the taxonomy.

In yet still another additional embodiment of the invention, the datacategorization application further configures the processor toiteratively identify sub-categories for at least one identified categorybased on the pieces of source data associated with the identifiedcategory.

In yet another embodiment of the invention, the at least one identifiedcategory is selected based on the attributes of the pieces of sourcedata associated with the identified category and the identifiedsub-categories include at least one attribute from a piece of sourcedata associated with the sub-category that is not present in theidentified category.

In still another embodiment of the invention, the data categorizationapplication further configures the processor to generate instructiondata, where the instruction data describes the attributes of the piecesof the source data that should be used in generating the set of pairwiseannotations.

In yet still another embodiment of the invention, the instruction datais generated based on the attributes of the pieces of source data in theset of source data.

In yet another additional embodiment of the invention, generating a setof pairwise annotations for the pieces of source data in each subset ofsource data using the distributed data categorization server system isbased on data characterization device metadata, where the datacharacterization device metadata describes anticipated annotations basedon the pieces of source data.

In still another additional embodiment of the invention, the datacategorization application further configures the processor to clusterthe set of source data into related subsets of source data by generatinga model including a set of points representing the pieces of source datain a Euclidian space and clustering the set of points within theEuclidian space based on the set of pairwise annotations.

In yet still another additional embodiment of the invention, the datacategorization application further configures the processor to estimatethe number of clusters within the Euclidian space.

In yet another additional embodiment of the invention, the datacategorization application further configures the process to determine aplurality of subsets by determining a subset size, where the subset sizeis a measure of the number of pieces of source data assigned to a subsetand deterministically allocating the pieces of source data to thedetermined subsets.

In still another additional embodiment of the invention, the datacategorization application further configures the processor to allocateadditional pieces of source data to the subsets, where the additionalpieces of source data are sampled without replacement from the set ofsource data not already assigned to the subset.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 conceptually illustrates a distributed data categorization systemin accordance with an embodiment of the invention.

FIG. 2 conceptually illustrates a data categorization device inaccordance with an embodiment of the invention.

FIG. 3 is a flow chart conceptually illustrating a process for thecategorization of source data in accordance with an embodiment of theinvention.

FIG. 4 is a flow chart conceptually illustrating a process fordetermining subsets of source data in accordance with an embodiment ofthe invention.

FIG. 5 is a flow chart conceptually illustrating a process for modelingworker behavior in the categorization of source data in accordance withan embodiment of the invention.

DETAILED DESCRIPTION

Turning now to the drawings, systems and methods for distributedcategorization of source data in accordance with embodiments of theinvention are illustrated. In a variety of applications including, butnot limited to, medical diagnosis, surveillance verification, performingdata de-duplication, transcribing audio recordings, or researching datadetails, a large variety of source data, such as image data, audio data,and text data, can be generated and/or obtained. By categorizing thesepieces of source data, particular portions of the source data can beidentified for particular purposes and/or additional analysis. Systemsand methods for annotating source data that can be utilized inaccordance with embodiments of the invention are disclosed in U.S.patent application Ser. No. 13/651,108, titled “Systems and Methods forDistributed Data Annotation” to Welinder et al. and filed Oct. 12, 2012,the entirety of which is hereby incorporated by reference. However,particularly in applications having a large number of source data,determining what categories are present in the source data can bedifficult. It may not be realistic to expect a single person or machineto look at all images and determine categories for the set of sourcedata, as it may not be time and/or cost effective to have a singlesource of categorizations. Likewise, a single person or machine may notbe able to identify every category present within the set of sourcedata. Additionally, individual sources of category annotations, whetheruntrained sources or expert sources, might not agree on the criteriaused to define categories and may not even agree on the number ofcategories that are present within the set of source data.

Distributed data categorization server systems in accordance withembodiments of the invention are configured to determine subsets of aset of source data and distribute the subsets of source data to avariety of data categorization devices that are configured to identifyclusters containing similar source data within the subsets and annotatethe pieces of source data with the identified cluster information. Datacategorization devices include human annotators, machine-basedcategorization devices, and/or a combination of machine and humancategorization as appropriate to the requirements of specificapplications in accordance with embodiments of the invention. The datacategorization devices are configured to cluster subsets of source databased on a variety of categorization criteria, where the source data ina cluster belong to the same category according to the categorizationcriteria. In several embodiments, the clustering of data is a humanintelligence task where human annotators are asked to pick pairs ofsource data that they consider to be most similar from a set of examplesof source data. As can readily be appreciated, annotators can utilizeany of a variety of characteristics of the source data to definesimilarly. For example, one annotator may cluster images of objectsbased upon color and another annotator may cluster the same images basedon shape. The different characteristics utilized during annotation aretypically unknown to the distributed data categorization and so analysisof the clusters reveals different attributes of the source data andsemantic information concerning the manner in which the source data canbe categorized. Furthermore, aggregation of information across a numberof annotators can capture information concerning different useful waysin which users may categorize source data. In this way, source data canbe annotated using in the ways that are most meaningful to users insteadof being restricted to annotation in accordance with a predefinedtaxonomy. In a variety of embodiments, instruction data is providedalong with the subsets of source data indicating the attributes of thepieces of source data that should be analyzed in the clustering of thepieces of source data. The distributed data categorization server systemis configured to receive the different clusters of source data from avariety of data categorization devices and identify categories withinthe set of source data based on the annotations associated with thesource data. The categories can be defined using the attributes of thepieces of source data as appropriate to the requirements of specificapplications in accordance with embodiments of the invention. In avariety of embodiments, the distributed data categorization serversystem is configured to determine metadata describing thecharacteristics of the data categorization devices based on the receivedannotated pieces of source data. This data categorization devicemetadata describes the annotations received from the data categorizationdevice and can be utilized to anticipate annotations provided by thedata categorization device, in the determination of which datacategorization devices to distribute subsets of source data, and in thecalculation of rewards (such as monetary compensation) to allocate toparticular data categorization devices.

In many embodiments, the distributed data categorization server systemis configured to identify categories that may contain additionalsub-categories and distribute those source data associated with anidentified category for additional clustering by the data categorizationdevices. In this way, broad categories can be identified for a set ofsource data and additional categories can be iteratively identifiedwithin the source data. In a number of embodiments, the iterativecategorization of source data is utilized to construct a taxonomy (orany other structure representing entities and the relationships betweenthe entities) where the categories and sub-categories describe therelationships between the pieces of source data in the set of sourcedata. As additional sub-categories are iteratively identified withinsubsets of the set of source data, additional relationships between theidentified categories, sub-categories, and pieces of source data areincorporated into the taxonomy. Although specific taxonomy-basedapproaches for expressing the relationships between categories andsource data with increased specificity are discussed above, any of avariety of techniques can be utilized to categorize source dataincluding techniques that involve a single pass or multiple passes bythe same set of data categorization devices or different sets of datacategorization devices as appropriate to the requirements of specificapplications in accordance with embodiments of the invention.

Although the above is described with respect to distributed datacategorization server systems and data categorization devices, the datacategorization devices can be implemented using the distributed datacategorization server system as appropriate to the requirements ofspecific applications in accordance with embodiments of the invention.Systems and methods for distributed categorization of source data inaccordance with embodiments of the invention are discussed furtherbelow.

Distributed Data Categorization Systems

Distributed data categorization systems in accordance with embodimentsof the invention are configured to distribute subsets of a set of sourcedata to a variety of data categorization devices and, based on theresults obtained from the data categorization devices, identifycategories of source data within the set of source data. A conceptualillustration of a distributed data categorization system in accordancewith an embodiment of the invention is shown in FIG. 1. Distributed datacategorization system 100 includes distributed data categorizationserver system 110 connected to source data database 120 and one or moredata categorization devices 130 via network 140. In many embodiments,distributed data categorization server system 110 and/or source datadatabase 120 are implemented using a single server. In a variety ofembodiments, distributed data categorization server system 110 and/orsource data database 120 are implemented using a plurality of servers.In many embodiments, data categorization devices 130 are implementedutilizing distributed data categorization server system 110 and/orsource data database 120. Network 140 can be one or more of a variety ofnetworks, including, but not limited to, wide-area networks, local areanetworks, and/or the Internet as appropriate to the requirements ofspecific applications in accordance with embodiments of the invention.

Distributed data categorization system 110 is configured to obtainpieces of source data and store the pieces of source data using sourcedata database 120. Source data database 120 can obtain source data fromany of a variety of sources, including content sources, customers, andany of a variety of providers of source data as appropriate to therequirements of specific applications in accordance with embodiments ofthe invention. In a variety of embodiments, source data database 120includes one or more references (such as a uniform resource locator) tosource data that is stored in a distributed fashion. Source datadatabase 120 includes one or more sets of source data to be categorizedusing distributed data categorization server system 110. A set of sourcedata includes one or more pieces of source data including, but notlimited to, image data, audio data, signal data, and text data. Inseveral embodiments, one or more pieces of source data in source datadatabase 120 includes source data metadata describing attributes of thepiece of source data. Distributed data categorization server system 110is further configured to generate subsets of source data and distributethe subsets of source data to one or more data categorization devices130. Data categorization devices 130 transmit annotated source data todistributed data categorization server system 110. Based on theannotated source data, distributed data categorization server system 110is configured to identify categories describing the pieces of sourcedata. In many embodiments, distributed data categorization server system110 is configured to determine the characteristics of the datacategorization devices 130 based on the received annotations. Thecharacteristics of data categorization devices 130 can be utilized bydistributed data categorization server system 110 to determine whichdata categorization devices 130 will receive pieces of source dataand/or determine rewards (or other compensation) for annotating piecesof source data. In a number of embodiments, distributed datacategorization server system 110 is configured to identify categories ofsource data that may contain additional sub-categories within the sourcedata and (iteratively) distribute the identified categories of sourcedata to data categorization devices 130 to identify additionalsub-categories within the particular set of source data.

Data categorization devices 130 are configured to cluster pieces ofsource data according to categorization criteria and annotate the piecesof source data based on the clustering via metadata associated with thepieces of source data. Data categorization devices 130 include, but arenot limited to, human annotators, machine annotators, and emulations ofhuman annotators performed using machines. Human annotators canconstitute any human-generated annotators, including users performinghuman intelligence tasks via a service such as the Amazon MechanicalTurk service provided by Amazon.com, Inc. In the illustrated embodiment,data categorization devices 130 are illustrated as personal computersconfigured using appropriate software. In various embodiments, datacategorization devices can include (but are not limited to) tabletcomputers, mobile phone handsets, software running on distributed datacategorization server system 110, and/or any of a variety ofnetwork-connected devices as appropriate to the requirements of specificapplications in accordance with embodiments of the invention. In severalembodiments, data categorization devices 130 provide a user interfaceand an input device configured to allow a user to view the pieces ofsource data received by the data categorization device and provideannotations (such as clustering pieces of source data based onsimilarity) for the pieces of source data. In a number of embodiments, aplurality of pieces of source data are presented to the user and theuser is asked to select similar pieces of source data, such as viagrouping pieces of source data and/or other selection techniques asappropriate to the requirements of specific applications in accordancewith embodiments of the invention. In many embodiments, the user isasked to select the two most similar pieces of source data within thepresented source data (e.g. the user selects pairs of pieces of sourcedata based on categorization criteria). In this way, by presentingdifferent sets of source data the user annotations can be utilized toidentify clusters of related pieces of source data based on the pairwiserelationships identified in the user annotations. In a variety ofembodiments, the annotations are performed using distributed datacategorization server system 110.

Distributed data categorization systems in accordance with embodimentsof the invention are described above with respect to FIG. 1; however,any of a variety of distributed data categorization systems can beutilized in accordance with embodiments of the invention. Systems andmethods for distributed data categorization in accordance withembodiments of the invention are described below.

Distributed Data Categorization Server Systems

Distributed data categorization server systems are configured to assignpieces of source data from a set of source data to data categorizationdevices, receive annotations identifying clusters of source data withinthe set of source data from the data categorization devices, anddetermine categories for the pieces of source data based on the receivedannotations. A distributed data categorization server system inaccordance with an embodiment of the invention is conceptuallyillustrated in FIG. 2. Distributed data categorization server system 200includes processor 210 in communication with memory 230. Distributeddata categorization server system 200 also includes network interface220 configured to send and receive data over a network connection. In anumber of embodiments, network interface 220 is in communication withthe processor 210 and/or memory 230. In several embodiments, memory 230is any form of storage configured to store a variety of data, including,but not limited to, data categorization application 232, source data234, source data metadata 236, and data categorization device metadata238. In many embodiments, source data 234, source data metadata 236,and/or data categorization device metadata 238 are stored using anexternal server system and received by distributed data categorizationserver system 200 using network interface 220. External server systemsin accordance with a variety of embodiments include, but are not limitedto, database systems and other distributed storage services asappropriate to the requirements of specific applications in accordancewith embodiments of the invention.

Data categorization application 232 configures processor 210 to performa distributed data categorization process for set of source data 234.The distributed data categorization process includes generating subsetsof the set of source data 234 and transmitting the subsets of sourcedata to one or more data categorization devices. In a variety ofembodiments, the subsets of source data are transmitted via networkinterface 220. In many embodiments, the selection of data categorizationdevices is based on data categorization device metadata 238. Asdescribed below, the data categorization devices are configured togenerate clusters of pieces of source data and generate source datametadata 236 containing annotations and/or other attributes for thepieces of source data based on the generated clusters. Source dataattributes can include, but are not limited to, annotations provided forthe piece of source data, the source of the provided annotations, and/orone or more categories identified as describing the piece of sourcedata. In a variety of embodiments, data categorization application 232configures processor 210 to perform the clustering and annotationprocesses. The distributed data categorization process further includesreceiving the annotated pieces of source data and identifying categoriescontaining one or more pieces of source data 234 based on theannotations and/or other attributes in source data metadata 236. In anumber of embodiments, the distributed data categorization process alsoincludes identifying categories of source data that may containadditional sub-categories and iteratively performing the datacategorization process on the identified categories to generate thesub-categories of source data.

In a number of embodiments, data categorization application 232 furtherconfigures processor 210 to generate and/or update data categorizationdevice metadata 238 describing the characteristics of a datacategorization device based on the pieces of source data provided to thedata categorization device and/or the annotations generated by the datacategorization device. Data categorization device metadata 238 can alsobe used to determine rewards and/or other compensation awarded to a datacategorization device for providing annotations to one or more pieces ofsource data. Characteristics of a data categorization device includepieces of source data annotated by the data categorization device, theannotations applied to the pieces of source data, previous rewardsgranted to the data categorization device, the time spent annotatingpieces of source data, demographic information, the location of the datacategorization device, clustering criteria describing how the datacategorization device clusters pieces of source data, and any othercharacteristic of the data categorization device as appropriate to therequirements of specific applications in accordance with embodiments ofthe invention.

Distributed data categorization server systems are described above withrespect to FIG. 2; however, a variety of architectures, including thosethat store data or applications on disk or some other form of storageand are loaded into the memory at runtime can be utilized in accordancewith embodiments of the invention. Processes for the distributedcategorization of source data in accordance with embodiments of theinvention are discussed further below.

Distributed Data Categorization

The distributed categorization of source data involves the annotation ofa set of source data by a number of data categorization devices. Usingthe annotations, categories describing the pieces of source data can bedetermined. These categories can be utilized to identify portions of theset of source data of interest for further analysis and/or categoryrefinement. A process for distributed data categorization in accordancewith an embodiment of the invention is illustrated in FIG. 3. Theprocess 300 includes obtaining (310) a set of source data. Subsets ofsource data are determined (312) and assigned (314). Clusters within asubset of source data are generated (316). Categories of source data areidentified (318). In many embodiments, if refinements to the categoriesare required (320), additional subsets of source data are determined(312).

In many embodiments, the obtained (310) source data contains one or morepieces of source data. The pieces of source data can be, but are notlimited to, image data, audio data, video data, signal data, text data,or any other data appropriate to the requirements of specificapplications in accordance with embodiments of the invention. The piecesof source data can include source data metadata describing attributes ofthe piece of source data. A variety of techniques can be utilized todetermine (312) subsets of the source data as appropriate to therequirements of specific applications in accordance with embodiments ofthe invention, including determining overlapping subsets where everypair of pieces of source data occur in at least one subset, randomsampling, and iterative sampling methods that adaptively choosemaximally informative subsets. Additional processes for determining(312) subsets of source data that can be utilized in accordance withembodiments of the invention are described below. In a number ofembodiments, determining (312) subsets of source data further includesgenerating instruction data describing how the source data should beclustered. The instruction data can be pre-determined and/or determinedbased on the attributes of the pieces of source data being provided. Thedetermined (312) subsets are assigned (314) to one or more datacategorization devices; a particular subset can be assigned to one ormore data categorization devices. In a number of embodiments, aparticular data categorization device can only provide one set ofannotations for a particular subset of source data; other embodimentsallow multiple annotations for a particular subset of source data by thesame data categorization device. In several embodiments, the subsets areassigned (314) using data categorization device metadata describing thecapabilities of the data categorization devices. In several embodiments,the capabilities of a data categorization are determined based on thereceived instruction data. In a variety of embodiments, a compensationvalue is associated with the assigned (314) subset; the compensationvalue can be pre-determined and/or determined dynamically based on theattributes of the source data, the instruction data, and/or thecapabilities of the data categorization device.

Generating Subset Clusters

Subset clusters include one or more pieces of source data within anassigned (314) subset. Generating (316) clusters of source data includesassociating pieces of source data based on the attributes of the sourcedata, where pieces of source data in the same cluster have similarattributes. For example, pieces of source data can be clustered based onsize, color, quantity, genre, location, or any other categorizationcriteria as appropriate to the requirements of specific applications inaccordance with embodiments of the invention. The clusters can begenerated (316) according to the instruction data and/or thecapabilities of a data categorization device. In a variety ofembodiments, the pieces of source data are annotated based on thedifferences between the generated (316) clusters; e.g. the datacategorization device provides metadata describing the differencesbetween the generated (316) clusters than can be utilized in identifying(318) categories based on the generated (316) clusters. In manyembodiments, the generated (316) clusters are utilized to annotate thepieces of source data with binary pairwise labels for each pairing ofpieces of source data within the assigned (314) subset such that eachpair (a, b) of pieces of source data assigned (314) to a datacategorization device j has a label l_(abj) where l_(abj)=1 if thepieces of source data are in the same cluster and l_(abj)=−1 if thepieces of source data are in different clusters. In a number ofembodiments, the annotations for the clusters of pieces of source datautilize pairwise distance and/or three-way comparisons between thepieces of source data. Other label values and labeling techniques can beutilized as appropriate to the requirements of specific applications inaccordance with embodiments of the invention.

In several embodiments, the results of the generated (316) clusters arerepresented as a set of

$\quad\begin{pmatrix}M \\2\end{pmatrix}$

binary labels (e.g. the annotations applied to the pieces of sourcedata), where there are N total pieces of source data (indexed by i) andM pieces of source data in a determined (312) subset of source data; Hsubsets are determined (312) (indexed by h). In general, M<N, and in anumber of embodiments, M<<N. The subsets of source data are assigned(314) to J data categorization devices (indexed by j). The annotationsreceived from all of the data categorization devices is the set ofbinary variables

(indexed by tε{1, . . . , T}), where

$T = {H{\quad\begin{pmatrix}M \\2\end{pmatrix}}}$

is the total number of labels and l_(t) is the t-th label in

. Associated with l_(t) is a quadruple (a_(t)b_(t)j_(t)h_(t)) wherej_(t)ε{1, . . . , J} indicates the data categorization device producingthe label, a_(t)ε{1, . . . , N} and b_(t)ε{1, . . . , N} indicate thetwo pieces of source data compared by the label, and H_(t)ε{1, . . . ,H} indicates the subset and data categorization device combination thatgenerated the label.

Identifying Categories

Once clusters of pieces of source data have been generated (316) for theset of source data, categories can be identified (318). In a variety ofembodiments, the generated (316) cluster information is received by adistributed data categorization server system from a plurality of datacategorization devices. Identifying (318) categories includes a numberof indivisible groups that describe the generated (316) clusterings ofpieces of source data across some or all of the subsets of source data.For example, suppose one data categorization device clusters objectsinto tall objects and another of short objects, while a second datacategorization device clusters the same objects into a cluster of redobjects and another of blue objects. Therefore, the identified (318)categories include tall red objects, short red objects, tall blueobjects, and short blue objects.

In several embodiments, pieces of source data are represented as pointsin a Euclidian space and the data categorization devices are modeled aspairwise binary classifiers. Identifying (318) clusters is performed byclustering the source data points using a Dirichlet process mixturemodel, although a variety of discrete distributions can be utilized asappropriate to the requirements of specific applications in accordancewith embodiments of the invention. Given a D dimensional vector x_(i)with components [x_(i)]_(d) that encode source data piece i in theEuclidian space

^(D). A pairwise binary classifier is defined using the symmetric matrixW_(j)ε

^(D×D) with entries [W_(j)]_(d) ₁ _(d) ₂ and bias τ_(j)ε

^(D). The likelihood of a data categorization device to generate (316) aparticular clustering for images a_(t) and b_(t) with label l_(t) is

${p( {{l_{t}x_{a_{t}}},x_{b_{t}},W_{j_{t}},\tau_{j_{t}}} )} = \frac{1}{1 + {\exp ( {{- l_{t}}A_{t}} )}}$where A_(t) = x_(a_(t))^(T)W_(j_(t))x_(b_(t)) + τ_(j_(t))

Within the Euclidian space, pairs of vectors with common pairwiseactivity (or otherwise strongly correlated) over the points in theEuclidian space are identified (318) as being in the same category,while points that do not have common pairwise activity (or are otherwisenot strongly connected) are identified (318) as being in differentcategories. The joint distribution of the points within the Euclidianspace describing the pairwise activity can be given as

${p( {\Phi,V,Z,X,W,\tau,\mathcal{L}} )} = {\prod\limits_{k = 1}^{\infty}{{p( {V_{k}\alpha} )}{p( {{\Phi_{k}m_{0}},\beta_{0},J_{0},\eta_{0}} )}{\prod\limits_{i = 1}^{\alpha}{{p( {z_{i}V} )}{p( {x_{i}\Phi_{z_{i}}} )}{\prod\limits_{j = 1}^{J}{{p( {{{vecp}\{ W_{j} \}}\sigma_{0}^{w}} )}{p( {\tau_{j}\sigma_{0}^{\tau}} )}{\prod\limits_{t = 1}^{T}{p( {{l_{t}x_{a_{t}}},x_{b_{t}},W_{j_{t}},\tau_{j_{t}}} )}}}}}}}}$

where the conditional distributions are defined as

p(V_(ki)α) = Beta(V_(k); 1, α)${p( {{z_{i} - k}V} )} = {V_{k}{\prod\limits_{i = 1}^{k - 1}( {1 - V_{i}} )}}$p(x_(i)Φ_(z_(i))) = Normal(x_(i); μ_(z_(i)), ∑_(z_(i)))${p( {x_{i}\sigma_{0}^{x}} )} = {\prod\limits_{d}{{Normal}( {{{\lbrack x_{i} \rbrack d};0},\sigma_{0}^{x}} )}}$${p( {{{vecp}\{ W_{j} \}}\sigma_{0}^{w}} )} = {\prod\limits_{d_{1} \leq d_{2}}{{Normal}( {{{\lbrack W_{j} \rbrack d_{1}d_{2}};0},\sigma_{0}^{w}} )}}$p(τ_(j)σ₀^(τ)) = Normal(τ_(j); 0, σ₀^(τ))p(Φ_(k)m₀, β₀, J₀, η₀) = Normal-Wishart(Φ_(k); m₀, β₀, J₀, η₀)

and where

(σ₀ ^(x),σ₀ ^(τ),σ₀ ^(w) ,α,m ₀,β₀ ,J ₀,η₀)

are fixed hyper-parameters.

In a number of embodiments, the joint distribution is inferred using aVariational Bayes method with a proxy distribution

${q( {\Phi,V,Z,X,W,\tau} )} = {\prod\limits_{k = {K + 1}}^{\infty}{{p( {V_{k}\alpha} )}{p( {{\Phi_{k}m_{0}},\beta_{0},J_{0},\eta_{0}} )}{\prod\limits_{k = 1}^{K}{{q( V_{k} )}{q( \Phi_{k} )}{\prod\limits_{i = 1}^{N}{{q( z_{i} )}{q( x_{i} )}{\prod\limits_{j = 1}^{J}{{q( {{vecp}\{ W_{j} \}} )}{q( \tau_{j} )}}}}}}}}}$

With parametric distributions

q(V_(k)) = Beta(V_(k); ξ_(k, 1), ξ_(k, 2))q(Φ_(k)) = Normal-Wishart(m_(k), β_(k), J_(k), η_(k))${q( x_{i} )} = {\prod\limits_{d}{{Normal}( {{{\lbrack x_{i} \rbrack_{d};}\lbrack \mu_{i}^{x} \rbrack}_{d},\lbrack \sigma_{i}^{x} \rbrack_{d}} )}}$q(τ_(j)) = Normal(τ_(j); μ_(j)^(τ), σ_(j)^(τ)) q(z_(i) = k) = q_(ik)${q( {{vecp}\{ W_{j} \}} )} = {\prod\limits_{d_{1} \leq d_{2}}{{Normal}( {{{\lbrack W_{j} \rbrack_{d_{1}d_{2}};}\lbrack \mu_{j}^{w} \rbrack}_{d_{1}d_{2}},\lbrack \sigma_{j}^{w} \rbrack_{d_{1}d_{2}}} )}}$

and variational parameters

{ξ_(k,1),ξ_(k,2)}

and

{m _(k),β_(k) ,J _(k),η_(k)}

associated with the k-th mixture component. q(z_(i)=k)=q_(ik) is thefactorized assignment distribution for the i^(th) piece of source datawith mean μ_(i) ^(x) and variance σ_(i) ^(x) associated with the pointin Euclidian space. Similarly, μ_(j) ^(w) and σ_(j) ^(w) are the meanand variance for data categorization device j and μ_(j) ^(τ) and σ_(j)^(τ) are the mean and variance for the data categorization devices' biasτ_(j). The variational parameters can be determined utilizing a varietyof functions as appropriate to the requirements of specific applicationsin accordance with embodiments of the invention, including Jensen'sinequality. Using Jensen's inequality,

log p(

|σ₀ ^(x),σ₀ ^(τ),σ₀ ^(w) ,α,m ₀,β₀ ,J ₀,η₀)≧E _(q) log p(Φ,V,Z,X,W,τ,

)+

{q(Φ,V,Z,X,W,τ)}

with entropy

{q(Φ,V,Z,X,W,τ)}

and Free Energy

E _(q) log p(Φ,V,Z,X,W,τ,

)+

{q(Φ,V,Z,X,W,τ)}

The Free Energy can be approximated using a variety of distributions,including the unnormalized Gaussian function

g(Δ_(t))exp{(l _(t) A _(t)−Δ_(t))/2+λ(Δ_(t))(A _(t) ²−Δ_(t) ²)}≦p(l _(t)|x _(a) _(t) ,x _(b) _(t) ,W _(j) _(t) ,τ_(j) _(t) )

where

g(x)=(1+e ^(−x))⁻¹ and λ(Δ)=[½−g(Δ)]/(2Δ).

This results in the utility function

$\mathcal{F} = {{E_{q}\log \; {p( {\Phi,V,Z,X,W,\tau} )}} + {\mathcal{H}\{ {q( {\Phi,V,Z,X,W,\tau} )} \}} + {\sum\limits_{t}{\log \; {g( \Delta_{t} )}}} + {\frac{l_{t}}{2}E_{q}\{ A_{t} \}} - \frac{\Delta_{t}}{2} + {{\lambda ( \Delta_{t} )}( {{E_{q}\{ A_{t}^{2} \}} - \Delta_{t}^{2}} )}}$

describing the number of clusters of points in Euclidian space and,thereby, the identified (318) categories of source data based on thegenerated (316) subset clusters. Although a specific set ofdistributions and utility functions have been described above, a varietyof distributions and utility functions, such as Gaussian mixture models,exponential distributions, Monte Carlo techniques, variationalinference, and/or other techniques that enforce a scale for a latentspace such that the points in space can be regularized and/orcategorized (e.g. clustered) can be utilized as appropriate to therequirements of specific applications in accordance with embodiments ofthe invention.

In several embodiments, identifying (318) categories within thegenerated (316) subset clusters by identifying the boundaries betweensubset clusters. Identifying the boundaries between subset clustersincludes observing the centroids of the generated (316) subset clustersand then selecting samples in the Euclidian space along the linesintersecting the centroids of the subset clusters and determining setsof points along (or near to) the line. Based on the similarity and/ordifferences of the identified points, the edges and boundaries of thesubset clusters can be identified; the categories (318) are thenidentified based on the boundaries of the subset clusters. In a numberof embodiments, the boundary determination is performed iteratively andrefined as additional points are added to the Euclidian space andadditional subset clusters and boundaries of subset clusters areidentified. In many embodiments, metadata is associated with the subsetclusters (and/or pieces of source data within the subset clusters)indicating the properties used to place the particular pieces of sourcedata within a particular subset cluster is used to identify (318) thecategories. This metadata can be provided by a data categorizationdevice and/or be determined based on the similarities and/or differencesbetween pieces of source data within a subset cluster or betweenmultiple subset clusters.

Category Refinement

In a number of embodiments, once the categories have been identified(318), finer categorical distinctions exist in the pieces of source dataassociated with an identified (318) category. When it is desirable toidentify these finer categorical distinctions, the categories can berefined (320). In many embodiments, categories are refined (320) basedon attributes of the pieces of source data that are not described by theidentified (318) categories. In a variety of embodiments, categories arerefined (320) based on the number of pieces of data associated with anidentified (318) category. In several embodiments, one or more of theclusters are clearly defined in Euclidean space, resulting in easilyidentified (318) categories. In other clusters, in particular largerclusters, it is likely that there are several clusters present. Theseclusters within the larger cluster indicate the presence ofsub-categories that can be refined (320) based on the initiallyidentified (318) cluster. In a variety of embodiments, metrics relatedto the distribution of the samples around the centroid of a cluster areutilized to determine whether to attempt to further refine (320) acluster to identify the sub-categories within the original cluster.

Although specific processes for the distributed categorization of sourcedata are discussed above with respect to FIG. 3, any of a variety ofprocesses, including those utilizing distributions differing from thosedescribed above, can be performed in accordance with embodiments of theinvention. Processes for determining subsets of source data fordistribution to and the characterization of data categorization devicesin accordance with embodiments of the invention are discussed below.

Determining Subsets of Source Data

For a large set of source data, it may be impractical to analyze theentire set of source data at once in order to determine categoriesdescribing the pieces of source data in the set. By analyzing subsets ofthe set of source data, categories for the pieces of source data can bedetermined based on categories determined for the subsets. However, thesubsets of source data need to be constructed carefully to ensure thatsufficient overlap exists between subsets so that the subsets can becombined to determine categories for the whole while ensuring that everypiece of source data is categorized. A process for determining subsetsof source data for a set of source data in accordance with an embodimentof the invention is conceptually illustrated in FIG. 4. The process 400includes obtaining (410) a set of source data. A subset size isdetermined (412) and source data is allocated (414) to the subsets. Thesubsets are completed (416).

In many embodiments, the set of source data is obtained (410) utilizingprocesses similar to those described above. The subset size isdetermined (412) such that a subset is smaller than the obtained (410)set. In a variety of embodiments, the subset size is determined (412)based on the capabilities of a data categorization device. The obtained(410) source data is allocated (414) deterministically to the subsets ina manner such that each piece of source data occurs in at least onesubset and the subsets have an overlap in the pieces of source dataallocated across all the subsets. In cases where the determined (412)subset size exceeds the allocated (414) pieces of source data, a subsetis completed (416) by allocating additional pieces of source data withinthe set of source data that have not already been allocated (414) to thesubset. In several embodiments, the completion (416) of a subsetincludes sampling without replacement from the set of source data.

By way of example, take set of N pieces of source data distributed intosubsets having M pieces of source data in each subset. The N pieces ofsource data are allocated (414) across the subsets such that each subsetcontains

$\lceil \frac{M}{V} \rceil$

pieces of source data. The subsets are completed (416) by filling in theremaining

$M - \lceil \frac{M}{V} \rceil$

pieces of source data for each subset by sampling without replacementfrom the

$N - \lceil \frac{M}{V} \rceil$

pieces of source data that have not been allocated (414) to the subset.If R data categorization devices annotate each subset of source data,the total number of categorization tasks that need to be completed bydata categorization devices is

$H = {R{\lceil \frac{NV}{M} \rceil.}}$

This results in

$T = {{R\lceil \frac{NV}{M} \rceil \begin{pmatrix}M \\2\end{pmatrix}} \in {O({RNVM})}}$

binary labels being applied as annotations to the pieces of source data.

Although a specific process for determining subsets of a set of sourcedata is described above with respect to FIG. 4, a variety of processes,including those that utilize alternative sampling schemes, can beperformed in accordance with embodiments of the invention. Processes formodeling the characteristics of data categorization devices inaccordance with embodiments of the invention are discussed below.

Modeling Data Categorization Devices

A variety of attributes of a piece of source data can be utilized tocluster and categorize the piece of source data. Different datacategorization devices employ different categorization criteria in theclustering of source data assigned to the data categorization device.These categorization criteria can lead data categorization devices toperform better or worse than other data categorization devices based onthe attributes of the source data being categorized. By modeling thecharacteristics of the data categorization devices, source data can betargeted towards particular data categorization devices in order toimprove the overall performance of the data categorization process. Aprocess for annotating pieces of source data in accordance with anembodiment of the invention is conceptually illustrated in FIG. 5. Theprocess 500 includes obtaining (510) a subset of source data. The sourcedata is clustered (512) and annotated (514). In a variety ofembodiments, characteristics of a data categorization device are modeled(516).

In a variety of embodiments, the subset of source data is obtained(510), clustered (512), and/or annotated (514) utilizing processessimilar to those described above. In several embodiments, modeling (516)the characteristics of a data categorization device j includedetermining a predicted confusion matrix C_(j) where

[C _(j)]_(k) ₁ _(k) ₂ =E _(q) {∫p(l=1|x _(a) ,x _(b) ,W _(j),τ_(j))p(x_(a)|Φ_(k) ₁ )p(x _(b)|Φ_(k) ₂ )dx _(a) dx _(b)}

and the predicted confusion matrix expresses the probability that thedata categorization device j will assign source data k₁ and k₂ in theobtained (510) subset of source data to the same cluster (512). For thevariational distributions Φ(k₁) and Φ(k₂), the expected values

E{Φ _(k) ₁ }={m _(k) ₁ ,J _(k) ₁ /η_(k) ₁ }

and

E{Φ _(k) ₂ }={m _(k) ₂ ,J _(k) ₂ /η_(k) ₂ }

results in the approximate confusion matrix

[Ĉ _(j)]_(k) ₁ _(k) ₂ =g({circumflex over (Δ)}_(k) ₁ _(k) ₂ _(j))exp{(m_(k) ₁ ^(T)μ_(j) ^(w) m _(k) ₂ +μ_(j) ^(τ)−{circumflex over (Δ)}_(k) ₁_(k) ₂ _(j))/2}

that can be utilized in a variety of embodiments of the invention.

A specific process for annotating source data and modeling thecharacteristics for a data categorization device is described above withrespect to FIG. 5; however, a variety of processes, including those thatutilize alternative clustering techniques, can be utilized in accordancewith embodiments of the invention.

Although the present invention has been described in certain specificaspects, many additional modifications and variations would be apparentto those skilled in the art. It is therefore to be understood that thepresent invention can be practiced otherwise than specifically describedwithout departing from the scope and spirit of the present invention.Thus, embodiments of the present invention should be considered in allrespects as illustrative and not restrictive. Accordingly, the scope ofthe invention should be determined not by the embodiments illustrated,but by the appended claims and their equivalents.

What is claimed is:
 1. A method for determining categories for a set ofsource data, comprising: obtaining a set of source data using adistributed data categorization server system, where a piece of sourcedata comprises source data metadata describing attributes of the pieceof source data; determining a plurality of subsets of the source datausing the distributed data categorization server system, where a subsetof the source data comprises a plurality of pieces of source data in theset of source data; generating a set of pairwise annotations for thepieces of source data in each subset of source data using thedistributed data categorization server system, where a pairwiseannotation indicates when a first piece of source data in a pair ofpieces of source data in the subset of source data is similar to asecond piece of source data in the pair of pieces of source data;clustering the set of source data into related subsets of source databased on the sets of pairwise labels for each subset of source datausing the distributed data categorization server system; and identifyinga category for each related subset of source data based on theclusterings of source data and the source data metadata for the piecesof source data in the group of source data using the distributed datacategorization server system.
 2. The method of claim 1, furthercomprising generating a taxonomy based on the identified categories andthe set of source data using the distributed data categorization serversystem, where the taxonomy comprises relationships between theidentified categories and the pieces of source data in the set of sourcedata.
 3. The method of claim 2, wherein a category in the taxonomycomprises one or more attributes of the pieces of source data associatedwith the category in the taxonomy.
 4. The method of claim 1, furthercomprising iteratively identifying sub-categories for at least oneidentified category based on the pieces of source data associated withthe identified category using the distributed data categorization serversystem.
 5. The method of claim 4, wherein: the at least one identifiedcategory is selected based on the attributes of the pieces of sourcedata associated with the identified category; and the identifiedsub-categories comprise at least one attribute from a piece of sourcedata associated with the sub-category that is not present in theidentified category.
 6. The method of claim 1, further comprisinggenerating instruction data using the distributed data categorizationserver system, where the instruction data describes the attributes ofthe pieces of the source data that should be used in generating the setof pairwise annotations.
 7. The method of claim 6, wherein theinstruction data is generated based on the attributes of the pieces ofsource data in the set of source data.
 8. The method of claim 1, whereingenerating a set of pairwise annotations for the pieces of source datain each subset of source data using the distributed data categorizationserver system is based on data characterization device metadata, wherethe data characterization device metadata describes anticipatedannotations based on the pieces of source data.
 9. The method of claim1, wherein clustering the set of source data into related subsets ofsource data further comprises: generating a model comprising a set ofpoints representing the pieces of source data in a Euclidian space usingthe distributed data categorization server system; and clustering theset of points within the Euclidian space based on the set of pairwiseannotations using the distributed data categorization server system. 10.The method of claim 9, further comprising estimating the number ofclusters within the Euclidian space using the distributed datacategorization server system.
 11. The method of claim 1, whereindetermining a plurality of subsets further comprises: determining asubset size using the distributed data categorization server system,where the subset size is a measure of the number of pieces of sourcedata assigned to a subset; and deterministically allocating the piecesof source data to the determined subsets using the distributed datacategorization server system.
 12. The method of claim 11, furthercomprising allocating additional pieces of source data to the subsetsusing the distributed data categorization server system, where theadditional pieces of source data are sampled without replacement fromthe set of source data not already assigned to the subset.
 13. Adistributed data categorization server system, comprising: a processor;and a memory configured to store a data categorization application;wherein the data categorization application configures the processor to:obtain a set of source data, where a piece of source data comprisessource data metadata describing attributes of the piece of source data;determine a plurality of subsets of the source data, where a subset ofthe source data comprises a plurality of pieces of source data in theset of source data; generate a set of pairwise annotations for thepieces of source data in each subset of source data, where a pairwiseannotation indicates when a first piece of source data in a pair ofpieces of source data in the subset of source data is similar to asecond piece of source data in the pair of pieces of source data;cluster the set of source data into related subsets of source data basedon the sets of pairwise labels for each subset of source data; andidentify a category for each related subset of source data based on theclusterings of source data and the source data metadata for the piecesof source data in the group of source data.
 14. The system of claim 13,wherein the data categorization application further configures theprocessor to generate a taxonomy based on the identified categories andthe set of source data, where the taxonomy comprises relationshipsbetween the identified categories and the pieces of source data in theset of source data.
 15. The system of claim 14, wherein a category inthe taxonomy comprises one or more attributes of the pieces of sourcedata associated with the category in the taxonomy.
 16. The system ofclaim 13, wherein the data categorization application further configuresthe processor to iteratively identify sub-categories for at least oneidentified category based on the pieces of source data associated withthe identified category.
 17. The system of claim 16, wherein: the atleast one identified category is selected based on the attributes of thepieces of source data associated with the identified category; and theidentified sub-categories comprise at least one attribute from a pieceof source data associated with the sub-category that is not present inthe identified category.
 18. The system of claim 13, wherein the datacategorization application further configures the processor to generateinstruction data, where the instruction data describes the attributes ofthe pieces of the source data that should be used in generating the setof pairwise annotations.
 19. The system of claim 18, wherein theinstruction data is generated based on the attributes of the pieces ofsource data in the set of source data.
 20. The system of claim 13,wherein generating a set of pairwise annotations for the pieces ofsource data in each subset of source data using the distributed datacategorization server system is based on data characterization devicemetadata, where the data characterization device metadata describesanticipated annotations based on the pieces of source data.
 21. Thesystem of claim 13, wherein the data categorization application furtherconfigures the processor to cluster the set of source data into relatedsubsets of source data by: generating a model comprising a set of pointsrepresenting the pieces of source data in a Euclidian space; andclustering the set of points within the Euclidian space based on the setof pairwise annotations.
 22. The system of claim 21, wherein the datacategorization application further configures the processor to estimatethe number of clusters within the Euclidian space.
 23. The system ofclaim 13, wherein the data categorization application further configuresthe process to determine a plurality of subsets by: determining a subsetsize, where the subset size is a measure of the number of pieces ofsource data assigned to a subset; and deterministically allocating thepieces of source data to the determined subsets.
 24. The system of claim23, wherein the data categorization application further configures theprocessor to allocate additional pieces of source data to the subsets,where the additional pieces of source data are sampled withoutreplacement from the set of source data not already assigned to thesubset.